package com.wisdytech.linkdcs.equipment.service;

import java.util.List;

import org.springframework.web.multipart.MultipartFile;

import com.github.pagehelper.PageInfo;
import com.wisdytech.common.bean.Filter;
import com.wisdytech.common.bean.StandardResult;
import com.wisdytech.linkdcs.equipment.model.CollectionParam;
import com.wisdytech.linkdcs.system.model.SysDict;
import com.wisdytech.linkdcs.system.model.SysUser;

/**
 * 
 * <p>ClassName: IEquipmentParamService</p>
 * <p>Description: 设备类别参数服务</p>
 * <p>Author: dailibo</p>
 * <p>Date: 2017-9-18</p>
 */
public interface IEquipmentParamService {

    /**
     * 
     * <p>Description: 分页查询设备参数列表</p>
     * @param emModel 设备类别编号
     * @param emModelType 设备类型
     * @param paramName 设备参数名称
     * @param filter 分页参数
     * @return 设备参数列表
     */
    public PageInfo<CollectionParam> listParamByFilter(String emModel, String emModelType, String paramName, Filter filter);

    /**
     * 
     * <p>Description: 新增设备参数</p>
     * @param param 设备参数列表
     * @param loginName 当前登录人 
     * @return 结果集
     */
    public StandardResult addCollectionParam( CollectionParam param, String loginName);
    
    /***
     * 
     * <p>Description: 删除设备参数</p>
     * @param id 设备参数id
     * @return 结果集
     */
    public StandardResult delCollectionParam(String id);
    
    /**
     * 
     * <p>Description: 更新设备参数</p>
     * @param param 设备参数列表
     * @param loginName 当前登录人
     * @return 结果集
     */
    public StandardResult updateCollectionParam(CollectionParam param, String loginName);
    /**
     * 
     * @param modelId 通过id获取采集器参数
     * @return 采集参数对象
     */
    public CollectionParam getEuipmentParamById(String pkId);
    
    /**
     * 
     * <p>Description: 根据设备类别id查找设备参数列表</p>
     * @param modelId 设备类别Id
     * @return 参数列表
     */
    public List<CollectionParam> listModelParams(String modelId);
    
    /**
     * 
    /**
     * 
     * <p>Description: 根据设备类别id查找设备参数列表</p>
     * @param modelCode 设备类别Id
     * @return 参数列表
     */
    public List<CollectionParam> listModelParamsByModelCode(String modelCode);
    /**
     * 
     * <p>Description: 根据设备类别id,参数名称分页查询设备参数列表</p>
     * @param modelId 设备类别Id
     * @param paramName 参数名称
     * @param page 当前页码
     * @param size 页面大小
     * @return 参数列表
     */
    public List<CollectionParam> listModelParams(String modelId,String paramName,int page,int size);
    
    /**
     * 
     * <p>Description: 根据设备id查找设备参数列表</p>
     * @param modelId 设备类别Id
     * @return 参数列表
     */
    public List<CollectionParam> listEqParams(String eqId);

	public List<SysDict> getProcessRange(String processRange);

	public void batchImportParam(MultipartFile file, SysUser operator);

	public List<SysDict> getDataType(String search);
    
    
    /***
     * 根据设备编码分页查找参数列表
     * @param eqCode 设备编码
     * @param filter 分页参数
     * @return
     */
    public PageInfo<CollectionParam> listParams(String eqCode,String search,Filter filter);
    
    
    
}
